package com.cskaoyan.javase.oop2._2polymorphic._1basic;

/**
 * 多态的访问特征:
 * 1.对象名点访问父子类中的同名成员变量,没有多态现象
 *      访问范围和访问结果都是引用的数据类型决定的
 *      编译时（访问范围）看左边，运行时（访问结果）还看左边.
 *
 * 2.对象名点访问父子类中的同名成员方法(方法的重写),有多态现象
 *      访问范围是根据引用的数据类型决定的,调用结果是根据对象的类型决定的
 *      编译时（访问范围）看左边，运行时（访问结果）要看右边.
 *
 * @since 10:47
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Father f;
        f = new Son();
        System.out.println(f.a);
        f.test();
        f = new SmallSon();
        System.out.println(f.a);
        f.test();
    }
}

class Father {
    int a = 10;
    public void test(){
        System.out.println("father");
    }
}

class Son extends Father {
    int a = 100;

    @Override
    public void test() {
        System.out.println("son");
    }
}

class SmallSon extends Father {
    int a = 1000;

    @Override
    public void test() {
        System.out.println("SmallSon");
    }
}